<html>
	<head>
		<meta http-equiv="refresh" content="2000" />
		<title>Oli's activity per project</title>
		<script language="javascript">
		<!--
			// parameters
			var seconds_per_page = 2 * 60;

			// state variables
			var num_pages = 0;
			var current_page = 0;
			var pages = new Array();
			function body_load()
			{
				// TODO: set a random background-image on body
				var body = document.getElementById('body');
				var potential_pages = body.childNodes;
				for ( var c = 0; c < potential_pages.length; c++ )
				{
					var node = potential_pages[c];
					if ( node.nodeName != '#text' )
					{
						pages.push(node)
						num_pages++;
					}
				}
				body_resize();
				if ( num_pages > 0 )
				{
					current_page = num_pages - 1;
					cycle();
				}
			}

			function body_resize()
			{
				// hide everything, so we can measure the best display area
				for ( var c = 0; c < num_pages; c++ )
				{
					var node = pages[c];
					node.style.display = 'none';
				}

				// measure display area
				var height = body.clientHeight;
				var width = body.clientWidth;
				// http://www.javascriptkit.com/javatutors/ns6update.shtml
				// if Firefox or NS6+
				if ( document.getElementById && !document.all )
				{
					// compensate for the vertical scrollbar
					// TODO: 16 works on my computer, but Windows allows users
					// to configure the size/width of scrollbars for
					// accessibility purposes and thus we would need a better
					// way to detecct
					width -= 16;
				}

				// resize and show everything
				for ( var c = 0; c < num_pages; c++ )
				{
					var node = pages[c];
					node.style.height = height + "px";
					node.style.width = width + "px";
					node.style.overflowX = "hidden";
					node.style.overflowY = "hidden";
					node.style.display = 'block';
				}
				body.scrollTop = height * current_page;
			}

			function cycle()
			{
				inner_cycle(1);
				window.setTimeout(cycle, seconds_per_page * 1000);
			}

			function inner_cycle(direction)
			{
				// TODO: this is a fixed cycle, but the user could jump back
				// or ahead and may want to resume from there.  We could
				// determine the current_page based on
				// body.scrollTop MOD clientHeight
				// and continue from there.
				current_page += direction;
				if ( current_page == num_pages )
				{
					current_page = 0;
				}
				else if ( current_page < 0 )
				{
					current_page = num_pages - 1;
				}
				var body = document.getElementById('body');
				body.scrollTop = body.clientHeight * current_page;
			}

			function body_key(evt)
			{
				evt = (evt) ? evt : ((window.event) ? window.event : "")
				if (evt)
				{
					switch(evt.keyCode)
					{
						case 8:		// backspace
						case 37:	// left
							inner_cycle(-1);
							evt.cancelBubble = true;
							break;
						case 32:	// space
						case 39:	// right
							inner_cycle(1);
							evt.cancelBubble = true;
							break;
					}
				}
			}
		// -->
		</script>
        <style>
            ul, ol, li { margin-top: -1px; }
        </style>
	</head>
    <!-- TODO: add estimated time left based on EBS -->
	<body id="body"
		style="margin: 0; height: 100%; width: 100%;"
		onload="body_load()"
		onkeyup="body_key(event)"
		onresize="body_resize()">
		<div align="center">
            <h2>TODD: Test-Oriented Development and Debugging</h2>
            <table>
                <tr>
                    <td align="center">
                        <h4>Commits per day</h4>
                        <img
                            alt="Recent commits from Google Code"
                            src="todd-commits-380x230.png"
                            width="380"
                            height="230"
                            />
                    </td>
                    <td align="center">
                        <h4>Builds per day</h4>
                        <img
                            alt="Recent builds from Hudson"
                            src="todd-builds-380x230.png"
                            width="380"
                            height="230"
                            />
                    </td>
                </tr>
                <tr>
                    <td align="center">
                        <h4>Hours logged per day</h4>
                        <img
                            alt="Timesheet entries from FogBugz"
                            src="todd-time-380x230.png"
                            width="380"
                            height="230"
                            />
                    </td>
                    <td align="center">
                        <h4>Suitability progress</h4>
                        COMING SOON
                        <!-- <img
                            alt="Suitability scores from Pex coverage"
                            src="todd-suitability-380x230.png"
                            width="380"
                            height="230"
                            /> -->
                    </td>
                </tr>
            </table>
		</div>
        <div align="center">
            <h2>Chart legends</h2>
            <table>
                <tr>
                    <td>
                        <h4>Commits per day</h4>
                        <ul>
                            <li>Usually represents number of sub-tasks accomplished</li>
                            <li><span style="font-color:00FF00;">Green</span> = good</li>
                            <li>Lots of green per day = good</li>
                            <li>Lots of days without any green = bad</li>
                        </ul>
                    </td>
                    <td>
                        <h4>Builds per day</h4>
                        <ul>
                            <li>Usually one build for each commit</li>
                            <li><span style="font-color:00FF00;">Green</span> = good, <span style="font-color:FF0000;">Red</span> = oops</li>
                            <li>Lots of green per day = good</li>
                            <li>Lots of days without any green = bad</li>
                            <li>Line chart instead of bar chart = bad</li>
                        </ul>
                    </td>
                </tr>
                <tr>
                    <td>
                        <h4>Hours logged per day</h4>
                        <ul>
                            <li><span style="font-color:00FF00;">Green</span> = good</li>
                            <li>Lots of green per day = good</li>
                            <li>Lots of days without any green = bad</li>
                        </ul>
                    </td>
                    <td>
                        <h4>Suitability progress</h4>
                        <ul>
                            <li><span style="font-color:000000;">Black</span> = manual effort (goal)</li>
                            <li><span style="font-color:0000FF;">Blue</span> = automatic effort</li>
                            <li>Blue going up = good</li>
                            <li>Blue going up fast = better</li>
                            <li>Black going up = probably bad</li>
                        </ul>
                    </td>
                </tr>
            </table>
        </div>
        <div align="center">
            <h3>How to Win Friends and Influence People by Dale Carnegie</h3>
            <table cellpadding="0" cellspacing="0">
                <tr valign="top">
                    <td width="45%">
                        <h4>Fundamental Techniques in Handling People</h4>
                        <tt>
                            <ol>
                                <li>Don't criticize, condemn or complain.</li>
                                <li>Give honest and sincere appreciation.</li>
                                <li>Arouse in the other person an eager want.</li>
                            </ol>
                        </tt>
                    </td>
                    <td>
                        <h4>Six ways to make people like you</h4>
                        <tt>
                            <ol>
                                <li>Become genuinely interested in other people.</li>
                                <li>Smile.</li>
                                <li>Remember that a person's name is to that person the sweetest and most important sound in any language.</li>
                                <li>Be a good listener. Encourage others to talk about themselves.</li>
                                <li>Talk in terms of the other person's interests.</li>
                                <li>Make the other person feel important - and do it sincerely.</li>
                            </ol>
                        </tt>
                    </td>
                </tr>
                <tr valign="top">
                    <td>
                        <h4>Win people to your way of thinking</h4>
                        <tt>
                            <ol>
                                <li>The only way to get the best of an argument is to avoid it.</li>
                                <li>Show respect for the other person's opinions. Never say, "You're wrong."</li>
                                <li>If you are wrong, admit it quickly and emphatically.</li>
                                <li>Begin in a friendly way.</li>
                                <li>Get the other person saying "yes, yes" immediately.</li>
                                <li>Let the other person do a great deal of the talking.</li>
                                <li>Let the other person feel that the idea is his or hers.</li>
                                <li>Try honestly to see things from the other person's point of view.</li>
                                <li>Be sympathetic with the other person's ideas and desires.</li>
                                <li>Appeal to the nobler motives.</li>
                                <li>Dramatize your ideas.</li>
                                <li>Throw down a challenge.</li>
                            </ol>
                        </tt>
                    </td>
                    <td>
                        <h4>Be a Leader</h4>
                        <h5>How to Change People Without Giving Offense or Arousing Resentment</h5>
                        <tt>
                            <ol>
                                <li>Begin with praise and honest appreciation.</li>
                                <li>Call attention to people's mistakes indirectly.</li>
                                <li>Talk about your own mistakes before criticizing the other person.</li>
                                <li>Ask questions instead of giving direct orders.</li>
                                <li>Let the other person save face.</li>
                                <li>Praise the slightest improvement and praise every improvement. Be "hearty in your approbation and lavish in your praise."</li>
                                <li>Give the other person a fine reputation to live up to.</li>
                                <li>Use encouragement. Make the fault seem easy to correct.</li>
                                <li>Make the other person happy about doing the thing you suggest.</li>
                            </ol>
                        </tt> 
                    </td>
                </tr>
            </table>
        </div>
        <div align="center">
            <h3>Getting Things Done by Edwin C. Bliss</h3>
            <table>
                <tr valign="top">
                    <td width="55%">
                        <h4>Time-saving tips</h4>
                        <tt>
                            <ul>
                                <li>Indecision is nearly always the worst mistake you can make.</li>
                                <li>The pursuit of excellence is gratifying and healthy.
                                The pursuit of perfection is frustrating, neurotic and a terrible waste of time.</li>
                                <li>If your office is typical, roughly three-quarters of the items in your files should have been placed in the wastebasket.</li>
                                <li>There's a common belief that tension is bad, that quiet and tranquility are goals for which we should strive.
                                Nonsense. Without tension nothing gets done.</li>
                                <li>Of all the time-saving techniques ever developed, perhaps the most effective of all is frequent use of the word "no".</li>
                            </ul>
                        </tt>
                        <h4>Random</h4>
                        <tt>
                            <ul>
                                <li>
                                    Efficiency Versus Effectiveness
                                    <ul>
                                        <li>Efficiency concerns the best ways of doing an assigned job.</li>
                                        <li>Effectiveness [...] concerns the <em>best use of time</em>--which may or may not include doing the particular job in question</li>
                                    </ul>
                                </li>
                                <li>
                                    Files, Proliferation of
                                    <ul>
                                        <li>"If I wanted this item again someday and didn't have it, what would I do?"</li>
                                        <li>Excessive record-keeping is a symptom of insecurity and defensive thinking.</li>
                                    </ul>
                                </li>
                            </ul>
                        </tt>
                    </td>
                    <td>
                        <h4>If Only</h4>
                        <tt>
                            <ul>
                                <li>There is no greater waste of time than regret.</li>
                                <li>The antidote is simple: eliminate [the words <em>if only</em>] from your vocabulary.</li>
                                <li>Substitute the words <em>next time</em> [...].</li>
                                <li>Never rehash errors you've made.  When you find yourself doing so, simply tell yourself, "Next time I'll do it differently."</li>
                            </ul>
                        </tt>
                        <h4>Categories of Time Use</h4>
                        <tt>
                            <ol>
                                <li>Important and Urgent - Do it now</li>
                                <li>Important but not Urgent - Defer it</li>
                                <li>Urgent but not Important - Delegate it</li>
                                <li>Busy Work - Dump it</li>
                                <li>Wasted Time</li>
                            </ol>
                        </tt>
                        <h4>Clutter</h4>
                        <tt>
                            <ol>
                                <li>Immediate action</li>
                                <li>Low priority</li>
                                <li>Pending</li>
                                <li>Reading material</li>
                                <li>Wastebasket</li>
                            </ol>
                            Put the highest-priority item from your first pile in the center of your desk, then put everything else out of sight, either on a side table or in your desk.
                        </tt>
                    </td>
                </tr>
            </table>
        </div>
        <div align="center">
            <h2>Random</h2>
            <table>
                <tr valign="top">
                    <td width="50%">
                        <h4>Success</h4>
                        <tt>
                            <ul>
                                <li>"In order to succeed, your desire for success should be greater than your fear of failure." - Bill Cosby</li>
                                <li>"If we don't succeed, we run the risk of failure." - MAD Magazine, 1991</li>
                                <li>"If at first you do succeed try not to look too surprised." - Anonymous</li>
                                <li>"Find a meaningful need and fill it better than anyone else." - Anonymous</li>
                                <li>In the game of life, there are players and spectators.  Which one are you?</li>
                                <li>"Let's do this!" - Leeroy Jenkins</li>
                                <li>"Success is not the key to happiness. Happiness is the key to success. If you love what you are doing, you will be successful." - Albert Schweitzer</li>
                            </ul>
                        </tt>
                        <h4>Information Overload and Managing the Flow by Scott Hanselman</h4>
                        <tt>
                            <ol>
                                <li>Drop packets; communication is fault-tolerant</li>
                                <li>"If you are the fastest responder to a problem, you will get all the problems. 
                                Don't put energy into things you don't want more of." - David Allen</li>
                                <li>"Conserve Your Keystrokes" - Jon Udell
                                    <ol>
                                        <li>Don't e-mail a book.</li>
                                        <li>You only have a finite amount of keystrokes left.  Use them wisely.</li>
                                        <li>Who really needs to know this?  Should it go in the wiki?
                                        In a blog post?</li>
                                    </ol>
                                </li>
                                <li>Find a trusted source and put stuff there, such as 43 folders</li>
                            </ol>
                        </tt>                        
                    </td>
                    <td>
                        <h4>Inbox Zero</h4>
                        <tt>
                            <ol>
                                <li>Do</li>
                                <li>Defer</li>
                                <li>Delegate</li>
                                <li>Delete</li>
                            </ol>
                        </tt>
                        <h4>Setting and achieving goals the SMART way</h4>
                        <tt>
                            <ul>
                                <li><em>S</em>pecific: don't be too general</li>
                                <li><em>M</em>easurable: you need to be able to tell that you have achieved</li>
                                <li><em>A</em>chievable: be realistic and reasonable</li>
                                <li><em>R</em>elevant: don't waste your time; make sure it really matters to you</li>
                                <li><em>T</em>ime-boxed: set a deadline</li>
                            </ul>
                        </tt>
                        <h4>Getting Things Done by David Allen</h4>
                        <tt>
                            <ol>
                                <li><em>Identify</em> all the stuff in your life that isn't in the right place (close all open loops)</li>
                                <li><em>Get rid of</em> the stuff that isn't yours or you don't need right now</li>
                                <li><em>Create</em> a right place that you trust and that supports your working style and values</li>
                                <li><em>Put</em> your stuff in the right place, consistently.</li>
                                <li><em>Do</em> your stuff in a way that honor your time, your energy, and the <strong>context</strong> of any given moment</li>
                                <li><em>Iterate</em> and <em>refactor</em> mercilessly</li>
                            </ol>
                        </tt>
                    </td>
                </tr>
            </table>
        </div>
        <div align="center"><img src="Keep Calm and Carry On.png" /></div>
	</body>
</html>
